﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using FacturacionII.Clases;
namespace FacturacionII.Formularios
{
    public partial class frmMaestroPersonas : FacturacionII.Formularios.frmMaestro
    {
        frmPrincipal objPrincipal;
        clsPersonas objPersonas;
        clsGiro objGiro;
        clsZonas objDistrito;
        clsIdentificacion objIdentificacion = new clsIdentificacion();
        public frmMaestroPersonas()
        {
            InitializeComponent();
        }

        private void frmMaestroPersonas_Load(object sender, EventArgs e)
        {
            this.grdListado.AutoGenerateColumns = false;
            this.CargarDatosGridView();
            this.AsignarPropiedadesDataGridView();
            sbMantenimiento.ExpandedPanel = sbpVer;
            stcPaneles.SelectedTab = stiListado;
            objDistrito = new clsZonas();
            objGiro = new clsGiro();
            objIdentificacion = new clsIdentificacion();
            cboDistrito.DataSource = objDistrito.CargarComboBoxDistritos();
            cboDistrito.DisplayMember = "DISTRITO";
            cboDistrito.ValueMember = "CODIGO";
            cboGiro.DataSource = objGiro.CargarComboBox();
            cboGiro.ValueMember = "CODIGO";
            cboGiro.DisplayMember = "DESCRIPCION";
            cboIdentificacion.DataSource = objIdentificacion.CargarComboBox();
            cboIdentificacion.DisplayMember = "DESCRIPCION";
            cboIdentificacion.ValueMember = "CODIGO";
        }

        public void CargarDatosGridView()
        {
            objPersonas = new clsPersonas();
            grdListado.DataSource = objPersonas.CargarDatosGridView();
        }

        private void sbpNuevo_Click(object sender, EventArgs e)
        {
            stcPaneles.SelectedTab = stiRegistro;
            txtRuc.Select();

        }

        private void btnNuevoLimpiar_Click(object sender, EventArgs e)
        {
            this.LimpiarControlesText();
        }

        public void LimpiarControlesText()
        {
            txtApellidos.Text = "";
            txtCelular.Text = "";
            txtCodigo.Text = "";
            txtCriterioBuscar.Text = "";
            txtDireccion.Text = "";
            txtDni.Text = "";
            txtEmail.Text = "";
            txtLimiteCredito.Text = "0";
            txtNombres.Text = "";
            txtRazonSocial.Text = "";
            txtReferencia.Text = "";
            txtRepresentante.Text = "";
            txtRuc.Text = "";
            txtTelefono.Text = "";
            cboDistrito.SelectedIndex = -1;
            cboGiro.SelectedIndex = -1;
            cboIdentificacion.SelectedIndex = -1;
        }

        private void btnNuevoCancelar_Click(object sender, EventArgs e)
        {
            this.LimpiarControlesText();
            sbMantenimiento.ExpandedPanel = sbpVer;
            stcPaneles.SelectedTab = stiListado;
            txtCriterioBuscar.Select();
        }

        private void btnNuevoSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnModificarSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnEliminarSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnVerSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnNuevoGuardar_Click(object sender, EventArgs e)
        {
            objPersonas = new clsPersonas();
            objPrincipal = new frmPrincipal();
            objPersonas.Guardar(
                txtRuc.Text.Trim(),
                txtRazonSocial.Text.Trim(),
                txtRepresentante.Text.Trim(),
                txtDni.Text.Trim(),
                txtNombres.Text.Trim(),
                txtApellidos.Text.Trim(),
                txtDireccion.Text.Trim(),
                int.Parse(cboDistrito.SelectedValue.ToString()),
                txtTelefono.Text.Trim(),
                txtCelular.Text.Trim(),
                txtEmail.Text.Trim(),
                int.Parse(cboIdentificacion.SelectedValue.ToString()),
                int.Parse(cboGiro.SelectedValue.ToString()),
                decimal.Parse(txtLimiteCredito.Text),
                txtReferencia.Text.Trim(),
                objPrincipal.getIdUsuario()
                );

            MessageBox.Show("SE HA GUARDADO EL NUEVO PROVEEDOR/CLIENTE",
                "SISTEMA DE FACTURACION", MessageBoxButtons.OK,
                MessageBoxIcon.Information);
            this.LimpiarControlesText();
            grdListado.DataSource = objPersonas.CargarDatosGridView();
            sbMantenimiento.ExpandedPanel = sbpVer;
            stcPaneles.SelectedTab = stiListado;
            txtCriterioBuscar.Select();
            
        }

        private void sbpModificar_Click(object sender, EventArgs e)
        {
            stcPaneles.SelectedTab = stiListado;
            sbMantenimiento.ExpandedPanel = sbpVer;
            this.LimpiarControlesText();
            txtCriterioBuscar.Select();
        }

        private void btnModificarGuardarCambios_Click(object sender, EventArgs e)
        {
            objPersonas = new clsPersonas();
            objPrincipal = new frmPrincipal();
            objPersonas.GuardarCambios(
                int.Parse(txtCodigo.Text.Trim()),
                txtRuc.Text.Trim(),
                txtRazonSocial.Text.Trim(),
                txtRepresentante.Text.Trim(),
                txtDni.Text.Trim(),
                txtNombres.Text.Trim(),
                txtApellidos.Text.Trim(),
                txtDireccion.Text.Trim(),
                int.Parse(cboDistrito.SelectedValue.ToString()),
                txtTelefono.Text.Trim(),
                txtCelular.Text.Trim(),
                txtEmail.Text.Trim(),
                int.Parse(cboIdentificacion.SelectedValue.ToString()),
                int.Parse(cboGiro.SelectedValue.ToString()),
                decimal.Parse(txtLimiteCredito.Text),
                txtReferencia.Text.Trim(),
                objPrincipal.getIdUsuario()
                );

            MessageBox.Show("SE HA GUARDADO LOS CAMBIOS DEL PROVEEDOR/CLIENTE",
                "SISTEMA DE FACTURACION", MessageBoxButtons.OK,
                MessageBoxIcon.Information);
            this.LimpiarControlesText();
            grdListado.DataSource = objPersonas.CargarDatosGridView();
            sbMantenimiento.ExpandedPanel = sbpVer;
            stcPaneles.SelectedTab = stiListado;
            txtCriterioBuscar.Select();
        }

        private void btnModificarCancelar_Click(object sender, EventArgs e)
        {
            this.LimpiarControlesText();
            sbMantenimiento.ExpandedPanel = sbpVer;
            stcPaneles.SelectedTab = stiListado;
            txtCriterioBuscar.Select();
        }

        private void grdListado_DoubleClick(object sender, EventArgs e)
        {
            string codigo, ruc, razonSocial, representante, dni, nombres, apellidos, direccion,
                distrito, telefonos, celular, email, identificacion, giro, limiteCredito, referencias;

            codigo = grdListado.CurrentRow.Cells[0].Value.ToString();
            ruc = grdListado.CurrentRow.Cells[1].Value.ToString();
            razonSocial = grdListado.CurrentRow.Cells[2].Value.ToString();
            representante = grdListado.CurrentRow.Cells[3].Value.ToString();
            dni = grdListado.CurrentRow.Cells[4].Value.ToString();
            nombres = grdListado.CurrentRow.Cells[5].Value.ToString();
            apellidos = grdListado.CurrentRow.Cells[6].Value.ToString();
            direccion = grdListado.CurrentRow.Cells[7].Value.ToString();
            distrito = grdListado.CurrentRow.Cells[8].Value.ToString();
            telefonos = grdListado.CurrentRow.Cells[10].Value.ToString();
            celular = grdListado.CurrentRow.Cells[11].Value.ToString();
            email = grdListado.CurrentRow.Cells[12].Value.ToString();
            identificacion = grdListado.CurrentRow.Cells[13].Value.ToString();
            giro = grdListado.CurrentRow.Cells[15].Value.ToString();
            limiteCredito = grdListado.CurrentRow.Cells[17].Value.ToString();
            referencias = grdListado.CurrentRow.Cells[18].Value.ToString();

            txtCodigo.Text = codigo;
            txtRuc.Text = ruc;
            txtRazonSocial.Text = razonSocial;
            txtRepresentante.Text = representante;
            txtDni.Text = dni;
            txtNombres.Text = nombres;
            txtApellidos.Text = apellidos;
            txtDireccion.Text = direccion;
            cboDistrito.SelectedValue = distrito;
            txtTelefono.Text = telefonos;
            txtCelular.Text = celular;
            txtEmail.Text = email;
            cboIdentificacion.SelectedValue = identificacion;
            cboGiro.SelectedValue = giro;
            txtLimiteCredito.Text = limiteCredito;
            txtReferencia.Text = referencias;
            sbMantenimiento.ExpandedPanel = sbpModificar;
            stcPaneles.SelectedTab = stiRegistro;
            txtRuc.Select();
        }

        public void AsignarPropiedadesDataGridView()
        {
            grdListado.AutoGenerateColumns = false;
            grdListado.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            //grdListado.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
            grdListado.Columns[0].DataPropertyName = "ID";
            grdListado.Columns[1].DataPropertyName = "RUC";
            grdListado.Columns[2].DataPropertyName = "RAZON_SOCIAL";
            grdListado.Columns[3].DataPropertyName = "REPRESENTANTE";
            grdListado.Columns[4].DataPropertyName = "DNI";
            grdListado.Columns[5].DataPropertyName = "NOMBRES";
            grdListado.Columns[6].DataPropertyName = "APELLIDOS";
            grdListado.Columns[7].DataPropertyName = "DIRECCION";
            grdListado.Columns[8].DataPropertyName = "ID_DISTRITO";
            grdListado.Columns[9].DataPropertyName = "DISTRITO";
            grdListado.Columns[10].DataPropertyName = "TELEFONOS";
            grdListado.Columns[11].DataPropertyName = "CELULAR";
            grdListado.Columns[12].DataPropertyName = "EMAIL";
            grdListado.Columns[13].DataPropertyName = "ID_IDENTIFICACION";
            grdListado.Columns[14].DataPropertyName = "IDENTIFICACION";
            grdListado.Columns[15].DataPropertyName = "ID_GIRO";
            grdListado.Columns[16].DataPropertyName = "GIRO";
            grdListado.Columns[17].DataPropertyName = "LIMITE_CREDITO";
            grdListado.Columns[18].DataPropertyName = "REFERENCIAS";
            
        }

        private void btnModificarSeleccionar_Click(object sender, EventArgs e)
        {
            string codigo, ruc, razonSocial, representante, dni, nombres, apellidos, direccion,
                distrito, telefonos, celular, email, identificacion, giro, limiteCredito, referencias;

            codigo = grdListado.CurrentRow.Cells[0].Value.ToString();
            ruc = grdListado.CurrentRow.Cells[1].Value.ToString();
            razonSocial = grdListado.CurrentRow.Cells[2].Value.ToString();
            representante = grdListado.CurrentRow.Cells[3].Value.ToString();
            dni = grdListado.CurrentRow.Cells[4].Value.ToString();
            nombres = grdListado.CurrentRow.Cells[5].Value.ToString();
            apellidos = grdListado.CurrentRow.Cells[6].Value.ToString();
            direccion = grdListado.CurrentRow.Cells[7].Value.ToString();
            distrito = grdListado.CurrentRow.Cells[8].Value.ToString();
            telefonos = grdListado.CurrentRow.Cells[10].Value.ToString();
            celular = grdListado.CurrentRow.Cells[11].Value.ToString();
            email = grdListado.CurrentRow.Cells[12].Value.ToString();
            identificacion = grdListado.CurrentRow.Cells[13].Value.ToString();
            giro = grdListado.CurrentRow.Cells[15].Value.ToString();
            limiteCredito = grdListado.CurrentRow.Cells[17].Value.ToString();
            referencias = grdListado.CurrentRow.Cells[18].Value.ToString();

            txtCodigo.Text = codigo;
            txtRuc.Text = ruc;
            txtRazonSocial.Text = razonSocial;
            txtRepresentante.Text = representante;
            txtDni.Text = dni;
            txtNombres.Text = nombres;
            txtApellidos.Text = apellidos;
            txtDireccion.Text = direccion;
            cboDistrito.SelectedValue = distrito;
            txtTelefono.Text = telefonos;
            txtCelular.Text = celular;
            txtEmail.Text = email;
            cboIdentificacion.SelectedValue = identificacion;
            cboGiro.SelectedValue = giro;
            txtLimiteCredito.Text = limiteCredito;
            txtReferencia.Text = referencias;
            sbMantenimiento.ExpandedPanel = sbpModificar;
            stcPaneles.SelectedTab = stiRegistro;
            txtRuc.Select();
        }

        private void sbpEliminar_Click(object sender, EventArgs e)
        {
            sbMantenimiento.ExpandedPanel = sbpEliminar;
            stcPaneles.SelectedTab = stiListado;
        }

        private void btmEliminarEliminar_Click(object sender, EventArgs e)
        {
            string codigo, razonSocial;
            objPersonas = new clsPersonas();
            sbMantenimiento.ExpandedPanel = sbpEliminar;
            stcPaneles.SelectedTab = stiListado;

            codigo = grdListado.CurrentRow.Cells[0].Value.ToString();
            razonSocial = grdListado.CurrentRow.Cells[2].Value.ToString();
            DialogResult respuesta;
            respuesta = MessageBox.Show("DESEA ELIMINAR EL PROVEEDOR/CLIENTE " + razonSocial,
                "SISTEMA DE FACTURACION", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (respuesta == DialogResult.Yes)
            {
                objPersonas.Eliminar(int.Parse(codigo));
            }
            this.LimpiarControlesText();
            grdListado.DataSource = objPersonas.CargarDatosGridView();
            sbMantenimiento.ExpandedPanel = sbpVer;
            stcPaneles.SelectedTab = stiListado;
            txtCriterioBuscar.Select();
        }
    }
}
